#ifndef _CELL_H_
#define _CELL_H_

class Cell
{
private:

		char cellColor;        //The color of the cell, 0-5 are the colors R,G,B,Y,P,O. This will store the char value of the cell.
		bool flooded;           //To determine whether the cell has been flooded
        bool nextTo;            //To determine whether the cell is next to the flooded region

        Cell * _pAbove;        //Pointer to the cell above the current cell
        Cell * _pBelow;       //Pointer to the cell below the current cell
        Cell * _pLeft;         //Pointer to the cell to the left of the current cell
        Cell * _pRight;        //Pointer to the cell to the right of the current cell


public:
        Cell();
		void SetFlooded(bool);
		bool GetFlooded();
		void SetNextTo(bool);
		bool GetNextTo();
		void SetColor(int color);
		char GetColor()	{return this->cellColor;}
		void SetpAbove(Cell * cellAbove);
		void SetpBelow(Cell * cellBelow);
		void SetpRight(Cell * cellRight);
		void SetpLeft(Cell * cellLeft);
		char GetColorpAbove(){return (this->_pAbove)->cellColor;}
		// Order of operations:  Do I need parenthesis here?
		char GetColorpBelow(){return (this->_pBelow)->cellColor;}
		char GetColorpRight(){return (this->_pRight)->cellColor;}
		char GetColorpLeft(){return (this->_pLeft)->cellColor;}
		const Cell operator=(const Cell * right);

};

#endif _CELL_H_